iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Modern Web

Backend Developer的學習Roadmap系列 第 19

Day 19 DB - ORMs(Object-Relational Mappers)

  • 分享至 

  • xImage
  •  

今天我們要來介紹在使用DB時,一個好用的技術,ORMs(Object-Relational Mappers,物件關係映射器),在寫程式和資料庫(如MySQL、PostgreSQL、SQL Server等)之間建立一種映射關係。

簡單來說,ORM幫助我們把程式碼中的物件和資料庫中的表格(文件)自動對應起來,讓我們可以用物件的方式來操作資料庫,而不需要寫一堆SQL查詢。

CRUD

當我們想要做最基本的CRUD時,ORM就很好用,他替我們做掉了SQL這些指令,讓我們可以使用物件的方式來存入資料庫,例如要新增一個用戶,只需要創建一個User物件,設置其屬性,然後使用save()方法,ORM會自動生成相應的SQL並執行。

優點

  • 減少重複的SQL:ORM幫助我們避免寫重複的SQL查詢和更新指令,讓程式更加簡潔和易於維護。
  • 提高生產力:通過自動化的方式來管理資料庫操作,ORM讓開發者可以更專注於業務邏輯,而不用為細節的SQL操作費心。
  • 跨資料庫兼容性:ORM通常支持多種資料庫,這代表我們可以更輕鬆地切換資料庫,而不需要改寫大量的SQL查詢。
  • 安全性:ORM工具通常內建防止SQL注入的機制,通過自動轉義和參數化查詢來提高應用的安全性。

缺點

  • 性能損失:由於ORM會生成和執行SQL,它可能無法針對所有情況生成最優化的SQL查詢,這在大型或高性能要求的系統中可能會成為瓶頸。
  • 複雜的查詢:當需要進行非常複雜的查詢時,使用ORM可能就比較難達成我們所想要的結果,例如Update如果ORM不支援的話,我們就要用delete+create來處理。

ORM工具

Hibernate (Java)
Mongoose (Nodejs)
Ktorm(Kotlin)

總結

ORM工具是開發者與資料庫之間的一座橋樑,它讓我們可以透過操作物件來管理資料庫,省去了手動編寫大量SQL的麻煩,並且提高了程式的可讀性和可維護性。但它也可能帶來一些性能上的問題,特別是在複雜查詢或大規模系統中,不過現在的ORM可以混著用XD 簡單的情況就可以使用ORM,複雜的操作再用原生的SQL就可以啦XD

reference

https://blog.csdn.net/fishsoul/article/details/138664390


上一篇
Day 18 DB - ACID
下一篇
Day 20 DB - N+1 problem
系列文
Backend Developer的學習Roadmap30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言